layui.use(['laydate', 'laypage', 'layer', 'table', 'carousel', 'upload', 'element'], function() {
    var laydate = layui.laydate //日期
        , laypage = layui.laypage //分页
        , layer = layui.layer //弹层
        , table = layui.table //表格
        , carousel = layui.carousel //轮播
        , upload = layui.upload //上传
        , $ = layui.jquery
        , element = layui.element; //元素操作

    var u_a = document.getElementById('update_all');
    var u_a_h = u_a.offsetHeight-120;
    var u_a_w = u_a.offsetWidth;

    var table_format_update = [[
        {checkbox: true}
        , {field: 'id', align: 'center', title: 'ID', width: "8%"}
        , {field: 'companyid', align: 'center', title: '公司ID', width: "8%"}
        , {field: 'companyname', align: 'center', title: '公司名称', width: "30%"}
        , {field: 'zcellname', align: 'center', title: 'zcell服务器名称', width: "12%"}
        , {field: 'nodename', align: 'center', title: 'node名称', width:"15%"}
        , {field: 'zcellip', align: 'center', title: 'zcell外网IP', width: "20%"}
        , {fixed: 'right',width: "12%", align: 'center', title: '操作',toolbar: '#upbarDemo'}
    ]];


    $('.layui-table').each(function() {
        //获取标签对于的一个属性
        var $obj = $(this);
        var tableid = $obj[0].id;
        var etaleid = '#' + tableid;
        var toolid = 'tool(' + tableid + ')';
        var checkboxid = 'checkbox(' + tableid + ')';
        //var tableid = document.getElementById('update').id;
        createtable(etaleid,tableid,update_data,table_format_update,toolid,u_a_h);
        updatetool(toolid, tableid);

    });
    // var id_node = {};
    // for (var i = 0; i<update_data.length; i++){
    //     id_node[update_data[i]["companyid"]] = i
    // }

    //执行渲染
    var uptable;
    function createtable(etaleid,tableid,datas,table_format,toolid,theight) {
        uptable = table.render({
            elem: etaleid,
            id: tableid,
            limit:10,
            height:theight,
            page: true,
            stateSave: true, //是否打开客户端状态记录功能,此功能在ajax刷新纪录的时候不会将个性化设定回复为初始化状态
            processing: true, //DataTables载入数据时，是否显示‘进度’提示
            data:datas,
            cols:table_format
        });
        active = {
            getCheckLength: function () {
                var checkStatus = table.checkStatus(tableid);
                var data = checkStatus.data;
                layer.msg('选中了：' + data.length + ' 个');
            },
            reloads: function(){
                var demoReload = $('#demoReload');
                 $.ajax({
                    url: "/updateselect/",
                    dataType: 'json',
                    type: 'POST',
                    data: {"companyname": demoReload.val()},
                    success: function (new_data) {
                        if (new_data["status"] === 0){
                            uptable.reload({
                                data: new_data["zcell_new_up"]
                            })
                        } else {
                            layer.msg("查询异常！")
                        }

                    }
                })
            },
            Deployment: function () {
                //配置一个透明的询问框
                var data = "";
                layer.msg('将对所有zecell进行更新，请确认更新文件是否已经放置到位！', {
                    time: 20000,
                    //20s后自动关闭
                    btn: ['更新', '取消'],
                    success: function (layero) {
                        var btn = layero.find('.layui-layer-btn');
                        var btntrue = layero.find('.layui-layer-btn0');
                        btn.css('text-align', 'center');
                        btntrue.on('click', function () {
                            var p_data = {"status":1};
                            ajaxsend(p_data)
                        })
                    }
                });
            },
            Update: function () {
                //示范一个公告层
                var checkStatus = table.checkStatus('update');
                var data = checkStatus.data;
                if (data.length === 0) {
                    layer.msg('没有选中数据');
                } else {
                    layer.open({
                        type: 1,
                        title: false, //不显示标题栏
                        closeBtn: false,
                        area: '300px;',
                        shade: 0.8,
                        maxHeight: 500,
                        id: 'LAY_layuipro', //设定一个id，防止重复弹出
                        btn: ['确认更新', '返回修改'],
                        moveType: 1, //拖拽模式，0或者1
                        content: updatelist(data),
                        success: function (layero) {
                            var btn = layero.find('.layui-layer-btn');
                            var btntrue = layero.find('.layui-layer-btn0');
                            btn.css('text-align', 'center');
                            btntrue.on('click', function () {
                                var p_data = {"data": JSON.stringify(data), "status": 2};
                                ajaxsend(p_data)
                            })
                        }
                    });
                }
            }
        };
    }
    //
    // table.on('checkbox(update)', function(obj){
    //       console.log(obj.checked); //当前是否选中状态
    //       console.log(obj.data); //选中行的相关数据
    //     console.log(obj)
    //       // console.log(obj.type); //如果触发的是全选，则为：all，如果触发的是单选，则为：one
    // });

    function updatetool(toolid, tableid) {
        //监听工具条
        //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
        table.on(toolid, function (obj) {
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值
            var tr = obj.tr; //获得当前行 tr 的DOM对象
            var checkStatus = table.checkStatus(tableid);
            // console.log(data);
            if (layEvent === 'updatenu') {
                layer.msg('更新操作');
                var p_data = {"data": JSON.stringify(data), "status": 2};
                ajaxsend(p_data)
            }
        });
    }


    function updatelist(updatedata) {
        var contxt = '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300; text-align:center">';
        for (var i = 0; i <= updatedata.length; i++) {
            if (i === updatedata.length) {
                contxt = contxt + '</div>'
            } else {
                contxt = contxt + updatedata[i]["zcellname"] + ' : ' + updatedata[i]["nodename"] + '<br>'
            }
        }
        return contxt
    }
    
    function ajaxsend(p_data) {
        $.ajax({
            url: "/updatesend/",
            dataType: 'json',
            type: 'POST',
            data: p_data,
            success: function (s_data) {
                if (s_data["status"] !== 0){
                    layer.msg("操作失败！")
                }
            }
        })
    }
    // function ajaxsend(update_json, status) {
    //     if (status === 0) {
    //         console.log('全部更新');
    //         $.ajax({
    //             url: "/updatesend/",
    //             dataType: 'json',
    //             type: 'POST',
    //             data: {"status": 1}
    //         })
    //     }else{
    //         $.ajax({
    //             url: "/updatesend/",
    //             dataType: 'json',
    //             type: 'POST',
    //             data: {"data": JSON.stringify(update_json), "status": 2}
    //         })
    //     }
    // }

    $('.demoTable .layui-btn').on('click',
    function() {
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });
});